package com.example.service;

import com.example.dto.ApiResponse;
import com.example.entity.UserSession;

import java.util.List;

public interface UserSessionService {

    // 创建新的用户会话
    UserSession createSession(Long userId, String token, String deviceInfo, String ipAddress);

    // 验证会话是否有效
    boolean validateSession(String token);

    // 更新会话最后访问时间
    void updateLastAccessTime(String token);

    // 获取用户的所有活跃会话
    List<UserSession> getUserActiveSessions(Long userId);

    // 使单个会话失效
    ApiResponse<?> invalidateSession(String token);

    // 使用户的所有会话失效（强制登出所有设备）
    ApiResponse<?> invalidateAllUserSessions(Long userId);

    // 清理过期会话
    void cleanupExpiredSessions();

    // 获取会话信息
    UserSession getSessionByToken(String token);
}